Collapsing areas of a region in a virtual universe to conserve computing resources

ABSTRACT

Described herein are processes and devices that coalesced and/or collapse areas in a region of a virtual universe to conserve computing resources. Some embodiments are directed to detecting an indication to reduce usage of a computing resource in the virtual universe and, in response, determining the first area of the virtual universe for coalescing and collapsing into the second area of the virtual universe. In some embodiments, the first area comprises a plurality of virtual universe objects. Some embodiments are further directed to selecting a first set of the plurality of virtual universe objects for moving from the first area into the second area, coalescing the first set of the plurality of virtual universe objects into the second area from the first area, and, in response, collapsing the first area of the virtual universe.

RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.11/931,826, filed Oct. 31, 2007 (which issued as U.S. Pat. No. 8,214,750on Jul. 3, 2012).

BACKGROUND

1. Technical Field

Embodiments of the inventive subject matter relate generally to virtualuniverse systems, and more particularly to collapsing areas of a regionof a virtual universe to conserve computing resources.

2. Background Art

Virtual universe applications allow people to socialize and interact ina virtual universe. A virtual universe (“VU”) is a computer-basedsimulated environment intended for its residents to traverse, inhabit,and interact through the use of avatars. Many VUs are represented using3-D graphics and landscapes, and are populated by many thousands ofusers, known as “residents.” Other terms for VUs include metaverses and“3D Internet.”

SUMMARY

Described herein are processes and devices that coalesce and/or collapseareas in a region of a virtual universe to conserve computing resources.Some embodiments are directed to detecting an indication to reduce usageof a computing resource in the virtual universe and, in response,determining the first area of the virtual universe for coalescing andcollapsing into the second area of the virtual universe. In someembodiments, the first area comprises a plurality of virtual universeobjects. Some embodiments are further directed to selecting a first setof the plurality of virtual universe objects for moving from the firstarea into the second area, coalescing the first set of the plurality ofvirtual universe objects into the second area from the first area, and,in response, collapsing the first area of the virtual universe.

BRIEF DESCRIPTION OF THE DRAWING(S)

The present embodiments may be better understood, and numerous objects,features, and advantages made apparent to those skilled in the art byreferencing the accompanying drawings.

FIG. 1 is an illustration of an example virtual resource conserver 102within an operating environment 100.

FIG. 2 is an example illustration of preparing a virtual object withresource conservation settings.

FIG. 3 is an example illustration of modifying a display of an areabased on a number of avatars in the area to conserve computingresources.

FIG. 4 is an example illustration of modifying a view of an area basedon an avatar's perspective to conserve computing resources.

FIG. 5 is an example illustration of coalescing and collapsing areas andcomputing resources in a virtual universe to conserve computingresources.

FIG. 6 is an illustration of an example virtual resource conserverarchitecture 600.

FIG. 7 is an example flow diagram 700 illustrating using smart objectsin a virtual universe to conserve computing resources.

FIG. 8 is an example flow diagram 800 illustrating preparing a virtualobject with resource conservation settings.

FIG. 9 is an example flow diagram 900 illustrating modifying a displayof an area in a virtual universe based on a significance of use of thearea, to conserve computing resources.

FIG. 10 is an example flow diagram 1000 illustrating modifying a view ofan area in a virtual universe based on an avatar's perspective, toconserve computing resources.

FIG. 11 is an example flow diagram 1100 illustrating collapsing areasand computing resources in a virtual universe to conserve computingresources.

FIG. 12 is an illustration of an example virtual resource conserver 1202on a network 1200.

FIG. 13 is an illustration of an example virtual resource conservercomputer system 1300.

DESCRIPTION OF EMBODIMENTS

The description that follows includes exemplary systems, methods,techniques, instruction sequences and computer program products thatembody techniques of embodiments of the invention(s). However, it isunderstood that the described embodiments of the invention(s) may bepracticed without these specific details. For instance, althoughexamples refer to smart objects that can automatically recognizeindications to conserve computing resources, other examples includedevices that are not smart objects, but that also determine indicationsto conserve computing resources. In other instances, well-knowninstruction instances, protocols, structures and techniques have notbeen shown in detail in order not to obfuscate the description.

Introduction

Virtual universes (VUs) are becoming increasingly popular for bothsocial and business use. Unfortunately, VUs demand large amounts ofcomputing resources from servers, clients, and almost any network deviceutilized in a VU network. For example, many objects within a VU areintended to draw attention, for example, by exhibiting flashycharacteristics like emitting sparkles, spinning, glowing, changingcolor, etc. Processing data to render the flashy characteristics demandssignificant computer processing. FIG. 1 shows how some objects can workwith a virtual resource conserver to conserve computing resources in aVU environment.

FIG. 1 is an illustration of an example virtual resource conserver 102within an operating environment 100. In FIG. 1, a server 128 isconnected to a communication network 122. A client 124 is also connectedto the communication network 122. The server 128 hosts a virtualuniverse 101. The client 124 communicates with the server 128, via thecommunication network 122, to obtain data that the client 124 processesto render a perspective of the virtual universe 101. A virtual resourceconserver 102 is connected to the server 128, although in anotherexample, the virtual resource conserver 102 could be connected to thecommunication network 122 or the client 124. In addition, the virtualresource conserver can be embodied in a server and/or client. A database131 is connected to the server 128, although the database 131 could alsobe connected to the communication network 122.

The virtual resource conserver 102, in stage “1”, detects an indicatorto reduce usage of a computing resource in the virtual universe 101.Examples of indicators include messages or signals, generatedautomatically or manually, that indicate resources on the networkdevices, such as the server 128 or the client 124, are experiencing busytimes, poor performance, usage maximization, etc. Computing resourcesinclude devices or system components that process, display, or otherwisecompute data that can be used in the virtual universe 101. Computingresources include any physical or virtual component of limitedavailability within a computer system or operating environment. Someexamples of computing resources include any device of limitedavailability within the operating environment 100, such as the server128, the client 124, the database 131, and other devices, not shown,that could be included in a communication network 122, such as routers,domain controllers, etc. Other examples of computing resources includecomponents of limited availability within devices, such as processors,memory (e.g., random access memory, virtual memory, etc.), hard diskspace, etc.

The client 124 displays a memory usage monitor 118 and processor usagemonitor 119, both of which indicate that the internal memory andprocessor resources are near a maximum usage level. Consequently, theclient 124 generates an indicator that its resources are being overused,for example, when usage rises above a pre-determined level. As a result,the virtual resource conserver 102 detects the indicator and recognizesit as an opportunity to reduce usage of computing resources.

The virtual universe 101 includes an object 109 (depicted as a dog) andan object 110 (depicted as a jeweled box). The objects 109, 110 havedisplayable characteristics, such as actions and properties, which canbe displayed within the virtual universe 101. Examples of somedisplayable characteristics include a number of triangles devoted torender the objects 109, 110, movements of the objects 109, 110, physicalcharacteristics of the objects 109, 110 (e.g., color or texture),actions performed by the objects 109, 110 (e.g., communicating, usingitems, etc.), a sparkle effect, an amount of luminosity, a location ofthe objects 109, 110 (e.g., inside or outside of an inventory), etc. Thedisplayable characteristics can correspond to functions and operationsprovided by one of the computing resources, such as a refresh rate, Rs,or a sparkle rate S. The refresh rate Rs and sparkle rate S are rates atwhich the displayable objects are processed by the computing resourcesfor display of the objects 109, 110 on devices, such as the client 124.When the virtual resource conserver 102 slows down one of the rates,then the quality of the object as rendered or displayed (“displayquality”) is reduced. For example, the refresh rate Rs or the sparklerate S can be a function of a clock cycle rate (t1) of a processor clock130 on the server 128. The refresh rate Rs or the sparkle rate S canalso be a function of the data transfer rate (DT) 132, or the rate atwhich data that makes up the objects 109, 110 is transferred over thecommunication network 122 between the server 128 and the client 124.Further, the refresh rate Rs or the sparkle rate S, can also be afunction of a clock cycle rate (t2) of a processor clock 134 on theclient 124. The clock cycle rates (t1, t2), in some examples, affectrates of action, such as refresh rates, sparkle rates, rates ofmovement, and so forth.

The virtual resource conserver 102, in stage “2”, selects a resourceconservation setting for any one of the objects 109, 110 in the virtualuniverse 101 to respond to the indicator. For example, the objects 109,110 are smart, or intelligent, in that they have “built in” resourceconservation settings (“conservation settings”) that can respond to theindicators on the network that indicate an opportunity to conserveresources. The conservation settings for the objects 109, 110 could bestored in the database 131 in records that correspond to the objects109, 110. In another embodiment, conservation settings for an object aredefined in the object and exported or pushed to clients. In anotherembodiment, a conservation setting is generic to objects or a categoryof objects and utilized for a group or category of objects. The smartobjects 109, 110 can include more than one setting, or levels ofsettings, that indicate degrees to which the display quality of thesmart objects 109, 110 can be reduced.

The virtual resource conserver 102, in stage “3”, reduces a displayquality of the smart objects 109, 110. For example, the smart objects109, 110 recognize an indicator that the memory usage 118 and/or theprocessor usage 119 on the client 124 are near a maximum. Consequently,the virtual resource conserver 102 reduces a refresh rate of the object109 or a sparkle rate of the object 110, thus reducing the displayquality of the displayable characteristics of the objects 109, 110. Thevirtual resource conserver 102 can reduce the rates by selecting andactivating instructions that reduce displayable characteristics. Forexample, the client 124 may have code used to display a perspective ofthe virtual universe 101 on the client 124. The code includessubroutines (e.g., functions, methods, procedures, event handlers,etc.), to determine how displayable characteristics of the objects 109,110 are processed and rendered by the client 124. The subroutinesinclude parameters, or variables, that receive arguments, or values. Thearguments are passed when the subroutine is called. For instance, thecode may utilize a default argument to maintain the sparklecharacteristic 111 on the sparkling object 110 at a high displayquality. Likewise, the code may utilize a default argument to maintainthe texture of the avatar object 109 at a high display quality. Thevirtual resource conserver 102, however, could pass an alternative, ormodified, argument, different from the default argument, to specificsubroutines, which would affect the display quality of the sparklecharacteristic 111 on the sparkling object 110 and/or the texture of theobject 109. The resource conservation settings on the smart objects 109,110 could include references to the subroutines and parameters, as wellas one or more alternative argument values, so that the virtual resourceconserver could refer to, and utilize, the proper subroutines with thealternative arguments.

In some instances, the virtual resource conserver 102 replaces a displayof the objects 109, 110, with substitute, reduced quality images. Thereduced quality images may resemble the original image of the objects109, 110. On the other hand, the reduced quality image may be aplaceholder image that does not represent the original image, butgenerically represents the objects 109, 110. The placeholder image couldbe related to categories, such as all animated objects are replaced witha triangle, whereas all inanimate objects are replaced with circle.

The virtual resource conserver 102, in stage “4”, reduces usage of oneor more computing resources, such as memory usage or processor usage, onthe client 124 or on the server 128. The virtual resource conserver 102reduces usage of the computing resources both directly and indirectly.For instance, the virtual resource conserver 102 can directly cause theclock 130 on the server 128 or the clock 134 on the client 124, to slowdown. By slowing the clocks 130, 134, the virtual resource conserver 102could cause a temporal dilation, which can affect a refresh rates andaction rates of objects in the virtual universe 101. Likewise, thevirtual resource conserver 102 could reduce the data transfer rate (DT)132, which could also cause a temporal dilation in the virtual universe101. As a result of directly reducing usage of computing resources, thevirtual resource conserver 102 indirectly causes reduction of thedisplay quality of the objects 109, 110. The virtual resource conserver102, however, can also indirectly reduce usage of computing resources.For example, as described in stage “2”, the virtual resource conserver102 reduces display quality of the smart objects 109, 110, such as bydirectly passing alternative arguments, the result being that thecomputing resources do not have to work as hard. Thus, the virtualresource conserver 102 indirectly causes computing resources to reducein usage. In yet other examples, the virtual resource conserver 102could directly and indirectly reduce usage of computing resources, suchas by directly slowing processor or memory usage (e.g., causing temporaldilation, causing overall display degradation), and by using the smartobjects 109, 110 to directly reduce display quality, which indirectlyreduces usage of computing resources.

The virtual resource conserver 102 could reallocate conserved computingresources to solve performance problems in the virtual universeoperating environment 100. If the virtual universe operating environment100 is experiencing performance problems in an area of the virtualuniverse 101, then the virtual resource conserver 102 could utilize theconserved computing resources to address the performance problem.

In other examples, users can volunteer to utilize the smart objects 109,110. For instance, the user could manually enable a user account settingindicating that the user agrees to utilize the smart objects 109, 110.The virtual resource conserver 102 reads the user account setting andaccordingly enables the smart objects 109, 110, such as by updating theconservation settings for the smart objects 109, 110. The enabledconservation settings indicate that the objects 109, 110 are in“conservation” mode, and, therefore, the virtual resource conserver 102is authorized to reduce the display quality of the objects 109, 110.

To incentivize users of the virtual universe 101 to conserve computingresources, the virtual resource conserver 102 can reward users of thevirtual universe 101 who use smart objects. For instance, the virtualresource conserver 102 could provide a user's virtual universe useraccount, or an avatar associated with the user, with a reward, such asspecial privileges, points, virtual currency, discounts, access torestricted functions, increased display quality to some objects, betterperformance, increased bandwidth, etc.

In the examples described above, the smart objects 109, 110 were reducedin display quality to conserve computing resources. Alternatively,energy-efficient objects may be rendered or displayed with lower displayquality as a default. Users of the virtual universe may then “upgrade”the display quality of objects by paying a fee or performing a service.The virtual resource conserver 102 could update conservation settings ofthe smart objects 109, 110, to look at a user's account for indicatorswhether the user has paid the fees or performed the server, to beexempted from display quality reduction.

Example Operating Environments

This section describes example operating environments and networks andpresents structural aspects of some embodiments. More specifically, thissection includes discussion about virtual resource conserver operatingenvironments and virtual resource conserver architectures.

Example of Preparing a Virtual Object with Resource ConservationSettings

FIG. 2 is an example illustration of preparing a virtual object withresource conservation settings. In FIG. 2, an operating environment 200includes a virtual resource conserver 202 connected to a communicationnetwork 222. A server 228 is also connected to the communication network222. A client 224 is connected to the communication network 222 andprocesses data, provided by the server 228 or generated by the client224, to display a perspective of a virtual universe 201. A database 231is connected to the communication network 222.

The virtual universe 201 contains an object 209. The object 209possesses displayable characteristics, abilities and/or properties,which define how the object 209 acts and/or appears in the virtualuniverse 201. For example, the object 209 could be a pet avatar thatbelongs to a virtual universe resident. The object 209 is created by amanufacturer of objects in the virtual universe 201. When created, theobject 209 is assigned one or more displayable characteristics 240(e.g., functionality, properties, etc.), as well as metadata andsettings (e.g., a unique universal identification (UUID)). The assigneddisplayable characteristics 240, metadata, and settings define theobject 209 and permit it to function in the virtual universe 201. Aspart of the creation process, or any time thereafter, the object 209 canbe made into a smart object by assigning one or more conservationsettings 244 that store metadata concerning when, how, or to whatdegree, to reduce a display quality of the object 209.

The virtual resource conserver 202, in stage “1”, selects the one ormore displayable characteristics 240 of the object 209. For example, thevirtual resource conserver 202 selects the one or more displayablecharacteristics 240 by referencing one or more entries in the database231 that store information about the object 209. In another example, thevirtual resource conserver 202 selects the one or more displayablecharacteristics 240 by referring to code, such as subroutines, thatcontrol or define the displayable characteristics 240. In yet anotherexample, the virtual resource conserver 202 selects the one or moredisplayable characteristics 240 by utilizing a graphical user interfacethat refers to the database entry or code. The displayablecharacteristics 240 can be one of many different characteristics of theobject 209 including texture, movement, color, object effects,luminosity, location, etc.

The virtual resource conserver 202, in stage “2”, determines a qualityreduction instruction 242 to associate with a conservation setting 244.The virtual resource conserver 202 can subsequently utilize the qualityreduction instruction 242 to reduce the display quality of the selecteddisplayable characteristics 240 of the object 209. The quality reductioninstruction 242 can include subroutines, statements, variables,expressions, operators, arguments, values, constants, arrays, etc.,that, when activated or applied, reduce a display quality of theselected displayable characteristics 240. For example, the qualityreduction instruction 242 could include state-based logic thatrecognizes and reacts to the state of a computing resource, such as in aproportional manner to a usage of the computing resource. For instance,as the usage for the computing resource rises above a pre-determinedvalue, the quality reduction instruction 242 proportionally reduces thedisplay quality of the displayable characteristics 240. The qualityreduction instruction 242 can be created and stored in, or selectedfrom, a code repository 243, such as a file, a script, a data library, adatabase record, etc.

In stage “3”, the virtual resource conserver 202, associates the qualityreduction instruction 242 with the conservation setting 244 for theobject 209. For instance, the virtual resource conserver 202 couldcreate one or more records or entries in the database 231 that togethercomprise the conservation setting 244. For instance, the virtualresource conserver 202 could select, or create, a column 245 in thedatabase 231, and insert a reference 247 to the quality reductioninstruction 242. The virtual resource conserver 202 could also select,or create, a column 246 and insert a setting value 248 to indicatewhether the conservation setting 244 is enabled.

Further, the virtual resource conserver 202, in stage “4”, associateslevels 250 of quality reduction instructions to the object 209. Forinstance, the levels 250 represent degrees of quality reduction, whichcan also be stored in the database 231 in database columns. The levels250 are associated with the conservation setting 244. For instance, thelevels 250 can be stored in a record of the database 231. This record isrelated to, and consequently also comprises, the conservation setting244. The levels 250 can be assigned according to an agreed-upon standardof levels for smart objects, or can be a customized set of levels. Afirst level 206 could include a first reference 208 to one or morequality reduction instructions that reduce a number of triangles devotedto render an avatar's body. A second level 209 could provide furtherdisplay quality reduction via a reference 211 to one or more qualityreduction instructions that would reduce body movements of the object209 and remove some display characteristics, like body hair, color, etc.A third level 212 could provide even further display quality reductionvia a reference 214 to one or more quality reduction instructions thatcan stop all scripts and immobilize the object 209. A final fourth level215 could provide yet further display quality reduction via a fourthreference 217 to one or more quality reduction instructions that canremove the object 209 entirely from the virtual universe 201, or byplacing the object 209 in an avatar's inventory. The levels 250represent a gradual reduction of display quality that the virtualresource conserver 202 can apply to the object 209 when the opportunityarises to conserve computing resources. The gradual reduction of displayquality can correlate to a degree of usage of a computing resource. Forexample, the virtual resource conserver 202 can activate the levels 250,according to their gradual order, to maintain a computing resource belowlevels of usage that would cause performance degradation in the virtualuniverse 201. For instance, as a computing resource approaches a maximumusage level, the virtual resource conserver 202 could cause the object209 to activate the first level 206, which could cause the computingresource usage to stabilize. However, as a busy period increases theusage of the computing resource, the virtual resource conserver 202could activate the second level 209, and so forth, to continue tostabilize the computing resource. The levels 206, 209, 212, and 215 canalso have respective setting values 207, 210, 213, and 216. The virtualresource conserver 202 can enable the conservation settings (e.g., peruser request, per administrator request, etc.) to authorize which levelsthe virtual resource conserver 202 can apply.

FIG. 2 describes associating information to a conservation setting 244of an object 209 that can be used to reduce the display quality of theobject. In some examples, however, the virtual resource conserver 202assigns information to the resource conservation setting 244 that can beused to increase, or augment, a display quality of the object 209. Forinstance, in some examples the virtual resource conserver 202 couldupdate the conservation setting 244 of the object 209, to utilize aquality augmentation instruction or value that can be used to improvethe display quality of the object 209 from a degraded quality state toan improved quality state. The degraded quality state may occur becausethe virtual resource conserver 202 caused the object 209 to be reducedin display quality, such as via using a quality reduction instruction orvalue, to reduce resource usage when resources were busy. On the otherhand, the degraded quality state may occur because the virtual resourceconserver 202 sets the object 209 to a reduced quality state as adefault, to minimize usage of computing resources. A user account thatuses the object 209, however, may have “upgraded” their status, (e.g.,paid a fee, performed a service, etc.) so that when the client 224processes the virtual universe 201, the virtual resource conserver 202reads the user accounts settings and determines that the user account isan “upgraded” account. Consequently, the virtual resource conserver 202looks at the resource conservation setting 244 for information that canbe used to augment the display quality of the object 209. The virtualresource conserver 202 then augments the display quality of the object209 by applying quality augmentation instructions or values storedwithin the setting 244.

Example of Modifying a Display of an Area Based On a Number of Avatarsin the Area to Conserve Computing Resources

FIG. 3 is an example illustration of modifying a display of an areabased on a number of avatars in the area to conserve computingresources. In FIG. 3, an operating environment 300 includes a virtualresource conserver 302 connected to a communication network 322. Aserver 328 is connected to the communication network 322. A client 324is also connected to the communication network 322. The server 328 hostsa virtual universe 301. A database 331 is connected to the server 328,although the database 331 could also be connected to the communicationnetwork 322. All network devices described in conjunction with FIG. 3,such as the server 328, the communication network 322, and the client324, may be referred to as computing resources. Further, all componentswith limited availability within the devices, such as processors,memory, disk space, etc., are also computing resources.

The virtual universe 301 contains one or more areas, such as a firstarea 312, a second area 314, and a third area 316. The areas 312, 314,316 may have unseen boundary lines 313. The boundary lines 313 may bepredetermined and may correlate to boundaries where one computingresource's domain ends and another begins. The boundary lines 313 couldcorrelate to virtual real-estate property boundaries. Further, thevirtual resource conserver 302 may generate the boundary lines 313according to logical rules for determining areas. Each area 312, 314,316 comprises one or more objects, such as buildings, landscaping,sidewalks, etc. The one or more objects have displayablecharacteristics, such as textures, colors, actions, etc. The first area312 has multiple avatars 308 occupying the area 312. The second area 314has one avatar 307 occupying the area 314. The third area 316 has noavatars occupying the area 316. The areas 312, 314, 316 may have arefresh rate (Rt1) related to a clock cycle rate (t1) of a processorclock 330 on the server 328. The refresh rate (Rt1) relates to a defaultdisplay quality of the one or more objects in the areas 312, 314, 316.Other functions and operations, such as a data transfer rate (DT) 332,or other rates controlled by the network devices, can also affect thedefault display quality of the areas 312, 314, 316.

The virtual resource conserver 302, in stage “1”, selects one or moreareas, such as the areas 312, 314, 316, to potentially reduce in displayquality. For example, the virtual resource conserver 302 may look at thecomputing resources that are used to display the virtual universe 301.If those computing resources are experiencing performance issues,inefficiency, or over usage, the virtual resource conserver 302 mayselect all areas under the computing resources' control to determinewhether, and to what degree, some displayable characteristics may bereduced in display quality to conserve some of the computing resources.

The virtual resource conserver 302, in stage “2”, determines andevaluates one or more significance of use factors (“significancefactors”) to determine whether, or to what degree, to reduce displayquality of the areas 312, 314, 316. Significance factors areinformation, conditions, or characteristics relating to the nature of anactivity in, or a purpose for, an area in the virtual universe. Forexample, the virtual resource conserver 302 determines that a number ofavatars that occupy the areas, (“avatar population”) will serve as asignificance factor. The virtual resource conserver 302 can determinethat an avatar occupies an area if the avatar is in, or is in closeproximity to, the area. Based on the number of avatars, the virtualresource conserver 302 can calculate a degree, or amount, that it canreduce the display quality for the area. For instance, the virtualresource conserver 302 determines that no avatars occupy the third area316, thus the virtual resource conserver 302 may decide to significantlyreduce the display quality of the area 316. The virtual resourceconserver 302 determines that one avatar 307 occupies the second area314, thus the virtual resource conserver 302 may decide to moderatelyreduce the display quality of the second area 314, although not as muchas the third area 316. The virtual resource conserver 302 determinesthat many avatars 308 occupy the third area 312, thus the virtualresource conserver 302 may decide to not reduce the display quality ofthe area 312. In some examples, the virtual resource conserver 302 canuse the significance factors to determine the areas to select in stage“1”. In other words, stage “2” may precede as well as follow stage “1”,or may be performed at the same time as stage “1”. For instance, thevirtual resource conserver 302 can patrol computing resources in theoperating environment 300, as part of a resource conservation plan. Thevirtual resource conserver 302 would look specifically for areas thatcan be reduced in display quality, even though the computing resourcescontrolling those areas may not be experiencing performance issues. Thevirtual resource conserver 302 could analyze areas in light of displayquality reduction criteria (e.g., significance factors), and then selectthe areas based on the analysis.

Other factors for determining whether, or to what degree, to reducedisplay quality of the areas could include whether the activity in thearea has been flagged as being important, if the activity is sponsoredor scheduled, if the activity has a strong monetary importance, or ifthe area has a significance that relates strongly to a goal or purposeof the virtual universe 301. Examples of significant or importantactivities and/or purposes include a sponsored music concert, a publicinformation kiosk, a dangerous trap, or a treasure.

The virtual resource conserver 302, in stage “3”, reduces the displayquality of the selected area or areas based on the evaluatedsignificance factors. For instance, because the virtual resourceconserver 302 calculated that no avatars were occupying the third area316, the virtual resource conserver 302 significantly reduces thedisplay quality of the third area 316. The virtual resource conserver302 removes landscaping and other insignificant objects. The virtualresource conserver 302 reduces the image quality of the building in thethird area 316 to have an outline, or frame, but displays little or nodetail. The virtual resource conserver could also consider the number ofavatars in nearby areas. For example, if there were no avatars occupyingthe second area 314, which is adjacent to the third area 316, thevirtual resource conserver 302 may have entirely removed the image ofthe building from the third area 316 as it is a far distance from anarea with any avatars (e.g., the first area 312). In one example, thevirtual resource conserver 302 may remove the objects from the thirdarea 316 simply because there are no avatars occupying the third area316 (e.g., formulaically, zero avatars would equate to zero displayquality, hence the virtual resource conserver 302 would remove thedisplay of all objects in the area).

The virtual resource conserver 302 reduces the display quality of thesecond area 314, although not as much as the third area 316 because thesecond area has one avatar 307 occupying the second area 314. Thevirtual resource conserver 302 reduces the display quality of the secondarea 314 by reducing the display quality of unimportant displayablecharacteristics, such as by removing textures or colors from the façadeof the building, and minimizing the view of the landscaping. However,the virtual resource conserver 302 maintains a well defined structure toimportant displayable characteristics of some objects, like thebuilding, entry ways, and sidewalks, so that the avatar 307 can use thebuilding without hindrance or confusion. Some of the objects in theareas 316, 314 and 312, can be smart objects. Also, the virtual resourceconserver 302 can gradually reduce the display quality of the areas 312,314, 316 based on evaluated significance factors. For instance, assignificance factors change, the virtual resource conserver 302 canadjust the display quality to compensate for the changes. For example,as a computing resource degrades in performance, or as a computingresource becomes busier or over used, the virtual resource conserver 302can gradually reduce display quality of the areas 312, 314, 316 tomaintain computing resources below a specific level of usage.

The virtual resource conserver 302, in stage “4”, reduces computingresource usage. For instance, regarding the third area 316, the refreshrate R(t1), can be a function of the clock rate (t1) on the server 328.Consequently, virtual resource conserver 302 could reduce usage of theprocessor clock 330 on the server 328, to a different rate (e.g., t3),which would cause the refresh rate on the third area 316 to be reduced,thus reducing display quality of the third area. The virtual resourceconserver 302 could instead use a clock rate from the client 324, suchas clock rate (t3) related to a clock cycle rate of a processor clock336 on the client 324, to process the refresh rate R(t3) on the thirdarea 316. Consequently, the virtual resource conserver 302 could reduceusage of the processor clock 336 on the client 324, thus reducingdisplay quality of the third area 316.

Referring to the second area 314, the virtual resource conserver 302could use a clock rate from the client 324, such as clock rate (t2)related to a clock cycle rate of a second processor clock 334 on theclient 324, to process the refresh rate R(t2) on the second area 314.The virtual resource conserver 302 could reduce usage of the processorclock 334, thus reducing the display quality of the second area 314.

In another example, the virtual resource conserver 302 could reduce thedata transfer rate (DT) 332 of data used to display the virtual universe301. For instance, the virtual resource conserver 302 could throttledata, or cause the server 328 to throttle data, to reduce the displayquality of the third area 316 or the second area 314.

The examples described so far in conjunction with FIG. 3 have describedhow a virtual resource conserver 302 reduces display quality of areas.The areas 312, 314, 316 start out with a detailed view. Then, thevirtual resource conserver 302 reduces the display quality of the areas312, 314, 316, based on evaluated significance factors. However, thevirtual resource conserver 302 could, alternatively, increase a displayquality of an area, based on evaluated significance factors. Forexample, the virtual resource conserver 302 could initially present anarea with a reduced display quality, but then increase the displayquality area based on the number of avatars occupying the area. Forexample, the virtual resource conserver 302 may reduce the displayquality of all areas that do not have avatars so that the area wouldhave the display quality similar to the third area 316 as shown in stage“3”. However, as an avatar approaches the area, the virtual resourceconserver 302 may increase the display quality of the area. If moreavatars occupy the area, then the virtual resource conserver 302 couldincrease the display quality until the area has no reduction in displayquality. Mentioned previously in FIG. 1, the virtual resource conserver302 can reward and compensate users of the virtual universe 301 that usesmart objects. One of the ways that the virtual resource conserver 302could reward users of the virtual universe 301 would be to provide viewsthat are not reduced in display quality. Furthermore, additionalsignificance factors that the virtual resource conserver 302 couldevaluate could include whether the user that controls the avatars 307,308 has volunteered to experience reduced views.

Example of Modifying a View of an Area Based on an Avatar's Perspectiveto Conserve Computing Resources

FIG. 4 is an example illustration of modifying a view of an area basedon an avatar's perspective, to conserve computing resources. In FIG. 4,an operating environment 400 includes a virtual resource conserver 402connected to a communication network 422. A server 428 is connected tothe communication network 422. A client 424 is also connected to thecommunication network 422. The server 428 hosts a virtual universe 401.A database 431 is connected to the server 428, although the database 431could also be connected to the communication network 422. All networkdevices described in conjunction with FIG. 4, such as the server 428,the communication network 422, and the client 424, may be referred to ascomputing resources. Further, all components with limited availabilitywithin the devices, such as processors, memory, disk space, etc., arealso computing resources.

The virtual resource conserver 402, in stage “1”, determines one or moreareas 440, 442 in a peripheral view of an avatar 407. In one example,the virtual resource conserver 402 determines areas 440, 442 in aperipheral view of the avatar 407 by first determining the avatar'sdirect field of vision marked by a first set of boundary lines 418 andan angle of direct view 404. The virtual resource conserver 402 candetermine the angle of direct view 404 based on multiple criteria. Forinstance, if the avatar 407 is engaged in an activity that requires awider direct field of vision, such as fighting a battle, seeking an itemor hunting a creature, shopping for virtual real estate, etc., then thevirtual resource conserver 402 can increase the angle of direct view 404to be sufficiently wide. Wide angle views may be referred to as “broadinterest” views. In other examples, if the avatar 407 is engaged in anactivity that does not require a wider direct field of vision, such asengaging in a one-on-one conversation, playing a video game, observing asingle object, waiting for a virtual item to respond, etc., then thevirtual resource conserver 402 can decrease the angle of direct view 404to be fairly narrow. Such narrow angle views may be referred to as“narrow interest” views.

A second set of boundary lines 417 can indicate areas that are in frontof the avatar, which are potentially viewable by the avatar 407 withinthe virtual universe 401. Although the boundary lines 417 are shown inFIG. 4 as a straight line, the boundary lines 417 could be curved or setat an angle, depending on the display capabilities of the virtualuniverse 401. Consequently, the virtual resource conserver 402determines that any area in front of the second boundary lines 417, butoutside of the first boundary lines 418, are areas 440, 442 in theavatar's peripheral view. The areas 440, 442 will be referred to as“peripheral view areas.” The peripheral views areas 440, 442 thereforecomprise the areas measured from the first boundary lines 418, throughthe angles of peripheral view 405, 406, until reaching the secondboundary line 417.

The virtual resource conserver 402, in stage “2”, reduces the displayquality of the one or more peripheral view areas 440, 442. The objects,such as buildings 412 and 414, within the peripheral view areas 440,442, can be reduced in display quality by removing textures, colors,actions, movements, etc. In one example, the virtual resource conserver402 changes the refresh rate (t1) for the peripheral view areas 440, 442so that in stage “2”, the refresh rates for the peripheral view areas440, 442 have changed to a second, slower refresh rate (t2), thusreducing the display quality of the peripheral view areas 440, 442(refresh rate (t1) for building 410 remains the same). In one example,the virtual resource conserver 402 could determine that any one of theperipheral views 440, 442 should not be reduced in display quality. Forexample, if an important activity is occurring in the area 442, thevirtual resource conserver 402 may decide not to reduce the displayquality of that area 442, and instead only reduce the area 440. In otherwords the angle of peripheral view 406 would become part of the angle ofdirect view 404, so that the boundary line 418 over lays the boundaryline 417.

The virtual resource conserver 402, in stage “3”, reduces usage ofcomputing resources. For example, the virtual resource conserver 402reduces display quality by reducing the use of computing resources. Forinstance, the virtual resource conserver 402 could reduce usage of theprocessor clock 430 on the server 428, to change the clock cycle rate(t1) to a slower clock cycle rate, which could cause the refresh rate onthe peripheral view areas 440, 442 to be reduced. The virtual resourceconserver 402 could instead reduce the clock rate (t2) of processorclock 434 on the client 424. In another example, the virtual resourceconserver 402 could reduce the data transfer rate (DT) 432 of data usedto display the virtual universe 401. For instance, the virtual resourceconserver 402 could throttle data, or cause the server 428 to throttledata, to reduce the display quality of the peripheral view areas 440,442. By reducing the clock cycle rates and data transfer rates, thevirtual resource conserver 402 can reduce computer resource usage.

In some examples, users of the virtual universe 401 can volunteer toexperience limited views. The virtual resource conserver 402 can rewardusers for volunteering to experience limited views by providing rewardsto user accounts or avatars associated with users. In other examples,the virtual resource conserver 402 can impose limited views upon usersas part of a resource conservation plan.

Example of Coalescing and Collapsing Areas and Computing Resources in aVirtual Universe to Conserve Computing Resources

FIG. 5 is an example illustration of coalescing and collapsing areas andcomputing resources in a virtual universe to conserve computingresources. In FIG. 5, an operating environment 500 includes a virtualresource conserver 502 connected to a communication network 522. One ormore computing resources, such as servers 528, 529, 530, and clients523, 524 are connected to the communication network 522. A first client523 controls a first avatar 503 in the virtual universe 501. A secondclient 524 controls a second avatar 507 in the virtual universe 501. Theclients 523, 524 process data, from the servers 528, 529, 530 torespectively render a perspective of the virtual universe 501. Theservers 528, 529, 530 can control different areas 510, 512, 514 in aregion 560 of the virtual universe 501. In other examples, portions, orsections of a single computing resource (e.g., partitions of a singledatabase, processors of a single server, etc.) could instead control theareas 510, 512, 514 of the virtual universe 501. The portions, orsections, of the single computing resource may be considered as separatecomputing resources for purposes of this description. The region 560includes one or more topology objects 550, 551, 552. Topology objects550, 551, 552 are objects that that give the region 560 a look and feel.The topology objects 550, 551, 552 are useful to give the region 560 aconsistent topology. However, topology objects 550, 551, 552 arenon-interactive, meaning that the avatars 503, 507 can see them, andpossibly touch them, but the topology objects 550, 551, 552 do notmeaningfully respond to, or interact with, the avatars 503, 507. Theregion 560 can also include interactive objects 504, 506, 508. Theinteractive objects 504, 506, 508 are objects with which the avatars503, 507 can meaningfully interact. The interactive objects 504, 506,508 generally relate to a purpose for the existence of the areas 510,512, 514 in the virtual universe 501. Some examples of interactiveobjects include reward items (e.g., treasures, scrolls, gifts, etc.)quest related items (traps, monsters, secrets, etc.), interactiveavatars (e.g., quest givers, allies, social contacts, etc.), personalitems (e.g., a cell phone, a television, etc.), recreational items(e.g., vending machines, video games, puzzles, etc.), and so forth.

The virtual resource conserver 502, in stage “1”, determines one or moreareas in the region 560 to collapse or coalesce. Coalescing, orcombining, an area means to move objects of significance, such asavatars and/or interactive objects, from the area into another area in aregion of the virtual universe 501. Avatars that are controlled by auser are usually objects of significance, because the area existsprimarily for the avatar's use. Interactive objects are also objects ofsignificance depending on how an avatar is interacting, or could likelyinteract, with the interactive object. For instance, if an avatar isusing the interactive object, then the interactive object is an item ofsignificance. However, if there are a plurality of interactive objectsin a area, like a row of identical vending machines, and only one avataris near the vending machines, but the avatar is not interacting with anyof the vending machines, the virtual resource conserver 502 maydetermine that only one of the vending machines should be considered anobject of significance, because the one avatar could potentiallyinteract with one of the vending machines. However, the virtual resourceconserver 502 would consider the remainder of the vending machines asnon-significant objects. The virtual resource conserver 502 couldfurther analyze whether the avatar is likely to interact with theinteractive object. For example, even though an interactive object maybe near an avatar, the virtual resource conserver 502 may analyze wherethe avatar is currently looking, or what the avatar is currently doing.If the avatar is not looking at the nearby interactive object, if theavatar is moving away from the nearby interactive object, or if theavatar is distracted by or using another interactive object, then thevirtual resource conserver 502 may consider the nearby interactiveobject as a non-significant item. Coalescing is performed to clear outan area of significant objects so that the area can be collapsed.Collapsing an area means that after the significant objects are removedfrom the area, all other non-significant objects (e.g., topologyobjects) can be removed from display or significantly reduced in displayquality, to conserve computing resources. In some embodiments, theentire area can be cropped from the virtual universe 501.

The virtual resource conserver 502 analyzes the first area 510 anddetermines that the avatar 503 is occupying the area 510. The virtualresource conserver 502 also determines that the avatar 503 interactswith the interactive object 504. Because one or more objects ofsignificance, e.g., the avatar 503 and the interactive object 504,occupy the first area 510, the virtual resource conserver 502,determines that the first area 510 could be coalesced with another area,or that another area could be coalesced with the first area 510.

Because there is an avatar in the first area 510, the virtual resourceconserver 502 determines which of the servers 528, 529, 530 controls thefirst area 510 so that the virtual resource conserver 502 can determinesession data used by the first client 523 to control the avatar 503. Thevirtual resource conserver 502 can subsequently transfer the sessiondata to another computing resource when moving the avatar 503 from thefirst area 510. For instance, the virtual resource conserver 502determines that the first server 528 controls the first area 510, or inother words the first server 528 processes data for displaying objectsand controlling actions in the first area 510. The first server 528 alsoprocesses session data for the first client 523 to control the avatar503 within the first area 510.

The virtual resource conserver 502 also analyzes the second area 512 andthe third area 514. The virtual resource conserver 502 analyzes thesecond area 512 and determines that there are no avatars in the area 512and determines that the second area 512 will be collapsed. The virtualresource conserver 502 determines that the second server 529 controlsthe second area 512. The virtual resource conserver 502 analyzes thethird area 514 and determines that the avatar 507 occupies the thirdarea 514, and that the avatar 507 interacts with the interactive object508. Because one or more object of significance, e.g., the avatar 507and interactive object 508, occupy the third area 514, the virtualresource conserver 502, determines that the third area 514 could becoalesced with another area, or that another area could be coalescedwith the third area 514. The virtual resource conserver 502 determinesthat the third server 530 controls the third area 514, or in otherwords, the third server 530 processes data for displaying objects andcontrolling actions in the third area 514. The third server 530 alsoprocesses session data for the second client 524 to control the avatar507 within the third area 514.

The virtual resource conserver 502 has detected two areas, the firstarea 510 and the third area 514, which could be coalesced to conservecomputing resources. The virtual resource conserver 502 analyzes thecomputing resources to determine whether coalescing and collapsing theareas would be a savings or efficiency enhancement of computing resourceusage. For instance, the virtual resource conserver 502 analyzesinformation about the servers 528 and 530, and may determines thatcoalescing the first area 510 and the third area 514 would require morecomputing resources to coalesce and maintain coalesced than would besaved. For example, if many avatars were occupying and moving in and outof the first area 510 and the third area 514, the virtual resourceconserver 502 may determine that coalescing the first area 510 and thethird area 514 would be a drain on computing resources. On the otherhand, the virtual resource conserver 502 may analyze the server 528 and530 and recognize other scenarios and metrics that indicate coalescingareas would be efficient and/or beneficial. For instance, the virtualresource conserver 502 may determine (e.g., analyze resources, receivean indication from an administrator, etc.) that some important tasksshould be processed by a single computing resource. Consequently, thevirtual resource conserver 502 could determine that the first area 510should be coalesced with the third area 514 so that the virtual resourceconserver 502 can use the first server 528 to process the importanttasks.

Once determined that there would be a savings or efficiency enhancementof computing resource usage, the virtual resource conserver 502determines which of the three servers 528, 529, 530 can most efficientlyprocess a single, coalesced area. For instance, the virtual resourceconserver 502 determines that the third server 530 can most efficientlyprocess the objects (e.g., the third server 530 is more powerful, thethird server 530 is less busy, etc.) and, hence, the virtual resourceconserver 502 determines that the first area 510 will be coalesced with,or combined into, the third area 514, and that the first area 510 andthe second area 512 will be collapsed.

The virtual resource conserver 502, in stage “2”, coalesces andcollapses the areas. The virtual resource conserver 502 moves the firstavatar 503 to the third area 514. The virtual resource conserver 502also moves the interactive object 504 to the third area 514 because thefirst avatar 503 was interacting with the interactive object 504. Thevirtual resource conserver 502 could move the avatar from the first area510 to the third area 514 using one or many techniques, such as by usingfunctions built into the virtual universe 501, including teleportation,walk, run, fly, etc. The virtual resource conserver 502 could re-drawand re-map the avatar 503 and the interactive object 504 into the thirdarea 514. The virtual resource conserver 502 could orient the avatar,such as by demonstrating to the avatar 503 where it will be moved beforeactually moving the avatar 503. The virtual resource conserver 502 maydemonstrate to the avatar 503 a proposed path of movement on a map, orwith visual indicators, like arrows or lines, that show that movementwill occur from a point in the first area 510 to a point in the thirdarea 514. The virtual resource conserver 502 does not move the topologyobject 550 because it is an unimportant object that is consumingresources without a significant purpose other than to act aslandscaping.

The virtual resource conserver 502 collapses the first area 510 byremoving a display of the topology object 550, and any othernon-significant objects. The virtual resource conserver 502 can removeobjects by reducing the display quality of the objects until they are nolonger displayed. The virtual resource conserver 502 could remove someobjects by moving the objects into an avatar inventory. Many techniqueshave been described above in conjunction with FIGS. 1 through 4 whichthe virtual resource conserver 502 could utilize to reduce the displayquality of objects. The virtual resource conserver 502 also collapsesthe second area 512 by removing any topology objects, such as topologyobject 551, as well as any non-significant objects.

In some embodiments, the virtual resource conserver 502 could cause areduced display quality image of the interactive object 506, from thesecond area 512, to appear in the third area 514. This reduced displayquality image of the interactive object 506, can be moved, or redrawnwith a new image. The virtual resource conserver 502 may move, orredraw, the interactive object 506 into the third area 514 to indicateto other avatars that enter the region 560 that the third area 514 canaccommodate other avatars that may want to interact with objects in theregion 560. However, the virtual resource conserver 506 reduces thedisplay quality of the interactive object 506 to maximize resourceconservation. Once an avatar comes close to the reduced display qualityimage of the interactive object 506 in the third area 514, the virtualresource conserver 502 could increase the display quality of theinteractive object 506. The virtual resource conserver 502 could reducethe display quality of non-significant objects in the third area 514,such as the topology object 552, for additional resource conservation.The physical layout of the third area 514 can change because objects aremoved into the third area 514. Plus, the third area 514 can expand, ifnecessary, to accommodate the first avatar 503, the interactive object504, and the reduced display quality image of the interactive object506.

The virtual resource conserver 502, in stage “3”, reduces usage of thecomputing resources that control the collapsed areas. For instance,since the virtual resource conserver 502 moved the avatar 503 from thefirst area 510 to the third area 514, the virtual resource conserver 502transfers any session data for controlling the first avatar 503 from thefirst server 528 to the third server 530. The virtual resource conserver502 could use a virtual data transfer application or function, likefunctions provided by VMware®'s VMotion™ software application or IBM®'sApplication Mobility software application. Because the virtual resourceconserver 502 moved all objects of significance, and removed the displayof other objects, from the first area 510 and the second area 512, thevirtual resource conserver 502 can cause the first server 528 and thesecond server 529 to reduce resource usage. Reducing resource usagecould include shutting down the servers 528, 529, causing the servers528, 529 to sleep or hibernate, reducing processor cycles, reducingmemory usage, reducing disk usage, etc. In addition, the servers 528,529 could continue operating on other existing tasks, be assigneddifferent tasks, etc.

In some examples, specific regions in the virtual universe 501 can bedesigned as energy-efficient regions which use the techniques describedherein. The designer of the region can entice energy-conscientiousresidents to visit the regions by promoting the area asenergy-efficient. Avatars that enter energy-efficient regions can expectthat areas will be collapsed when not in use, or expanded to accommodateadditional avatars. Designers may design the regions to have modularareas, with repetitious topologies, so that areas can be collapsedeasily without disorienting avatars.

Further, the examples described in FIG. 5 have shown regions with areasthat are contiguous on a horizontal plane. However, other examples couldinclude areas that are non-contiguous, or contiguous on a verticalplane, such as rooms on different floors of a building. For instance,the virtual resource conserver 502 would move one or more avatars fromone floor of the building to another floor of the building whilecoalescing and collapsing areas. The virtual resource conserver 502could orient the one or more avatars by showing the avatars a map of thebuilding and demonstrating a proposed path of movement on the map.

Example Virtual Resource Conserver Architecture

FIG. 6 is an illustration of an example virtual resource conserverarchitecture 600. In FIG. 6, the virtual resource conserver architecture600 can include a virtual resource conserver 602 configured to connectto, and interact with, systems and networks 622.

The virtual resource conserver architecture 600 includes an indicatordetection unit 610. The indicator detection unit 610 detects data thatindicates that a resource conservation setting is to be selected for avirtual object in a virtual universe to reduce usage of a computingresource. For instance, the indicator detection unit 610 detects when acomputing resource is overused or experiencing performance issues. Theindicator detection unit 610 can also detect when a smart object isenabled, or when an object enters into a resource conservation area.

The virtual resource conserver architecture 600 also includes a virtualresource conservation controller 612 configured to control displayquality and positioning of objects and areas in a virtual universe. Thevirtual resource conservation controller 612 can activate operationsthat reduce the display quality of an object's displayablecharacteristics. The virtual resource conservation controller 612 canreduce usage of processors, memory, disks, rendering hardware,communication devices, etc. of a computing device in response to, or inconjunction with, reducing display quality of objects in the virtualuniverse.

The virtual resource conserver architecture 600 also includes aconservation setting controller 614 configured to configure conservationsettings for virtual objects. The conservation setting controller 614can select, create, and associate quality reduction instructions toreduce the display quality of objects. The conservation settingcontroller 614 can also enable a resource conservation setting value onan object's related record in a database.

The virtual resource conserver architecture 600 also includes a viewscomputational unit 616 configured to compute displays of views inrelation to an avatar's perspective, location or activity in a virtualuniverse. For instance, the views computational unit 616 can calculateareas pertaining to an avatar's direct field of vision, as well as areaspertaining to an avatar's peripheral view.

The virtual resource conserver architecture 600 also includes a resourcecollapsing unit 618 configured to collapse areas of a virtual universeand collapse computing resources that control the collapsed areas. Theresource collapsing unit 618 can move objects from a first area to asecond area, and collapse the first area by reducing computing resourceusage and/or reducing a display quality of the first area.

The virtual resource conserver architecture 600 also includes acompensator unit 620 configured to reward virtual universe avatars anduser accounts of a virtual universe user for using resource conservationobjects and resource conservation techniques in a virtual universe.

The virtual resource conserver architecture 600 also includes acommunication interface 621 configured to facilitate communicationbetween the components of the virtual resource conserver 602.

Each component shown in the virtual resource conserver architecture 600is shown as a separate and distinct element. However, some functionsperformed by one component could be performed by other components. Forexample, the virtual resource conservation controller 612 could collapseareas, compute views, compensate virtual universe users, or perform anyother operation or processes described in embodiments herein.Furthermore, the components shown may all be contained in the virtualresource conserver 602, but some, or all, may be included in, orperformed by, other devices on the systems and networks 622.Furthermore, the virtual resource conserver architecture 600 can beimplemented as software, hardware, any combination thereof, or otherforms of embodiments not listed.

Example Operations

This section describes operations associated with some embodiments ofthe invention. In the discussion below, the flow diagrams may bedescribed with reference to the block diagrams presented above. However,in some embodiments, the operations can be performed by logic notdescribed in the block diagrams.

In certain embodiments, the operations can be performed by executinginstructions residing on machine-readable storage media (e.g.,software), while in other embodiments, the operations can be performedby hardware and/or other logic (e.g., firmware). Moreover, someembodiments can perform less than all the operations shown in any flowdiagram.

FIG. 7 is an example flow diagram illustrating using smart objects in avirtual universe to conserve computing resources. In FIG. 7, the flow700 begins at processing block 702, where a virtual resource conserverreads data that indicates that a resource conservation setting is to beselected for a smart object in a virtual universe. In one example, thevirtual resource conserver detects an indicator that a computingresource is being over used, or that requires a reduction in usage. Onesuch indicator could be that a computing resource, such as a server, isexperiencing busy times, poor performance, or usage maximization. Thevirtual resource conserver queries the virtual universe to determine oneor more smart objects that have displayable characteristics, such asactions and properties that can be reduced in display quality. Thedisplayable characteristics can be properties of the object, liketexture, color, sparkle, etc. The displayable characteristics can alsobe actions like movement, communication, travel, etc. The displayablecharacteristics correspond to functions and operations provided by oneor more computing resources, like servers or client machines. Thecomputing resources control property refresh rates and action rates. Thevirtual resource conserver can reduce the display quality of the smartobjects, which in turns reduces usage of the computing resources, orvice versa. The smart objects have resource conservation settings thatmark the object as being smart objects. The resource conservationsettings include metadata that identifies whether the smart objects canrespond to virtual universe conservation indicators, what displayablecharacteristics can be reduced, and references to code (subroutines,statements, parameters, etc.) that the virtual resource conserver canuse to reduce the display quality of the displayable characteristics.The metadata could also include levels that the virtual resourceconserver can use, or follow, to reduce the display quality gradually.

The flow 700 continues at processing block 704, where the virtualresource conserver selects the resource conservation setting for thesmart object. For instance, the virtual resource conserver selects themetadata associated with the resource conservation setting. In oneexample, the virtual resource conserver selects the metadata by readinga database entry for the object that stores the metadata.

The flow 700 continues at processing block 706, where the virtualresource conserver reduces the display quality of the smart object inaccordance with the selected resource conservation setting. For example,virtual resource conserver reduces the display quality of the object'sdisplayable characteristics using the metadata. In some examples, themetadata contains references to quality reduction instructions that thevirtual resource conserver processes to reduce display quality, such assparkle characteristics, texture, color, movement, etc. of the smartobject. The virtual resource conserver processes the quality reductioninstructions to reduce usage of one or more computing resources, such asusage of memory, processors, disk space, etc. Thus, the virtual resourceconserver conserves energy and power from the computing resources.Further, the virtual resource conserver can reallocate conservedcomputing resource usage to solve performance issues in the virtualuniverse. If the virtual universe is experiencing performance problemsin an area of the virtual universe, then the virtual resource conservercan utilize the conserved computing resource, such as processing cycleson a server, to address the performance problems.

The flow 700 continues at processing block 708, where the virtualresource conserver compensates a virtual universe user for using the oneor more smart objects. To incentivize users of the virtual universe touse smart objects, the virtual resource conserver rewards users of thevirtual universe that use smart objects. For instance, the virtualresource conserver could provide rewards to an avatar or a user accountbelonging to a user of the virtual universe that uses the smart objects.Examples of rewards include special privileges, points, virtualcurrency, discounts, access to restricted functions, increased displayquality to some objects, better performance, increased bandwidth fordata transfer, etc.

In some embodiments, the operations can be performed in series, while inother embodiments, one or more of the operations can be performed inparallel. Some operations may be omitted, such as processing block 708for compensating, or rewarding, virtual universe users.

FIG. 8 is an example flow diagram illustrating preparing a virtualobject with resource conservation settings. In FIG. 8, the flow 800begins at processing block 802, where a virtual resource conserverselects a displayable characteristic of a virtual object. The virtualobject possesses displayable characteristics, or abilities andproperties, which define how the object acts and appears in the virtualuniverse. The displayable characteristics were assigned to the objectwhen it was created. The virtual resource conserver, in one example,selects a displayable characteristic of the object by referencing anentry in a database that stores information about the object'scharacteristics, or by referring to code that controls or defines theobjects abilities and characteristics. In other examples, a displayablecharacteristic can be selected using a graphical user interface thatrefers to the database entries or to the object's code.

The flow 800 continues at processing block 804, where the virtualresource conserver determines, or creates, a quality reductioninstruction to associate with a conservation setting. The virtualresource conserver can subsequently utilize the quality reductioninstruction to reduce the display quality of the selected displayablecharacteristic of the object. The quality reduction instruction can becreated and stored in, or selected from, a code repository, such asfile, a script, a data library, a database record, etc. The qualityreduction instruction can include subroutines, statements, variables,expressions, operators, arguments, values, constants, arrays, scales,etc., that, when activated or applied, reduce a display quality of theselected displayable characteristic. For example, the quality reductioninstruction could include state-based logic that recognizes and reactsto the state of a computing resource, such as in a proportional mannerto a usage of the computing resource. For instance, as the usage for thecomputing resource rises above a pre-determined value, the qualityreduction instruction proportionally reduces the display quality of thedisplayable characteristic. The virtual resource conserver could createquality reduction instructions using various programming languages, likeC#, Java, etc. The virtual resource conserver could also selectpre-written quality reduction instructions. Further, the virtualresource conserver can store and process the quality reductioninstruction on a client, a server, or any other computing resource on avirtual universe network that can process computer instructions.

The flow 800 continues at processing block 806, where the virtualresource conserver creates a resource conservation setting for theobject. In one example, the virtual resource conserver creates alocation for storing the resource conservation setting by creating oneor more columns in a database. For instance, the virtual universeincludes databases containing one or more tables with one or morerecords that relate to the object. The one or more records alreadycontain data that characterize the object, such as a UUID, manufacturerinformation, and data regarding the objects properties and options.Thus, the virtual resource conserver adds columns specifically forstoring resource conservation data. The virtual resource conserver cansubsequently add data to the one or more columns as setting values,which indicate when, how, and to what degree an object can be reduced indisplay quality to conserve computing resources.

The flow 800 continues at processing block 808, where the virtualresource conserver associates the quality reduction instruction with theconservation setting for the object. For instance, the virtual resourceconserver writes a reference to the quality reduction instruction in oneor more columns of a database record related to the object. The columnscould, for example, include a reference to a subroutine related to theselected displayable characteristic, as well as pre-determined argumentsthat the virtual resource conserver can pass into the subroutine whichwould modify the display quality of the displayable characteristic.

The flow 800 continues at processing block 810, where the virtualresource conserver associates levels of quality reduction instructionswith the conservation setting. For instance, a level can include anorder of degree of quality reduction, which the virtual resourceconserver can store in a database entry. The virtual resource conservercan associate the levels according to an agreed-upon standard. Thelevels represent a gradual reduction of display quality that the virtualresource conserver can apply to the object when the opportunity arisesto conserve computing resources. The gradual reduction of displayquality can correlate to a degree of usage of a computing resource. Forexample, the virtual resource conserver can subsequently activate thelevels of reduction in the gradual order to maintain a computingresource below levels of usage that would cause performance degradationin the virtual universe. For instance, as a computing resourceapproaches a maximum usage level, the virtual resource conserver causesthe object to activate a first level of display degradation, which couldcause the computing resource usage to stabilize. However, as a busyperiod increases the usage of the computing resource, the virtualresource conserver could activate a second level, and so forth, tocontinue to stabilize the computing resource. The levels can also havesetting values, which the virtual resource conserver selects, such asper request of a user of the virtual universe or an administrator, toauthorize which levels the virtual resource conserver can apply.

In some embodiments, the operations can be performed in series, while inother embodiments, one or more of the operations can be performed inparallel. For example block 806, creating a resource conservationsetting, can be performed before processing block 802, and processingblock 804.

FIG. 9 is an example flow diagram illustrating modifying a display of anarea in a virtual universe based on a significance of use of the area,to conserve computing resources. In FIG. 9, the flow 900 begins atprocessing block 902, where a virtual resource conserver selects an areaof a virtual universe to potentially reduce in display quality. In oneexample, the virtual resource conserver determines boundary lines thatdemarcate the area. The virtual resource conserver may determine thearea based on predetermined boundary line values, or by creating theboundary lines according to logical rules. For instance, the virtualresource conserver determines boundary lines by determining any objectsthat are within a specified distance of an avatar. In other instances,the virtual resource conserver determines boundary lines by determiningthe boundary of a computing resources control over the virtual universe.The area contains one or more objects. The one or more objects havedisplayable characteristics, such as textures, colors, actions, etc. Thearea can also have avatars occupying the area. The virtual resourceconserver may analyze the state of the computing resources that are usedto display the area in the virtual universe. If those computingresources are experiencing performance issues, inefficiency, or overusage, the virtual resource conserver may select all areas under thecomputing resources' control to determine whether, and to what degree,some displayable characteristics may be reduced in display quality toconserve some of the computing resources.

The flow 900 continues at processing block 904, where the virtualresource conserver evaluates one or more significance factors related toa significance of use of the area. For brevity, the term “significancefactors” will be used in this description to mean “one or moresignificance factors”. Significance factors are information, conditions,or characteristics relating to the nature of an activity in, or apurpose for, an area in the virtual universe, such as whether or not theactivity in the area has been flagged as being important, if theactivity is sponsored or scheduled, if the activity has a strongmonetary importance, or the area has a significance that relatesstrongly to a goal or purpose of the virtual universe.

In some examples, the significance factors can even be evaluated todetermine what area the virtual resource conserver selects at processingblock 902. In other words, processing block 902 and 904 may be processedsimultaneously, or in reverse order. For instance the virtual resourceconserver may patrol computing resources on the virtual network, as partof a resource conservation plan, looking specifically for areas that canbe reduced in display quality, even though the computing resourcescontrolling those areas may not be experiencing performance issues. Thevirtual resource conserver could evaluate significance factors to selectareas for its resource conservation plan. In one example, the virtualresource conserver analyzes avatars that occupy an area. For instance,the virtual resource conserver counts the number of avatars in the area(“avatar population”). Based on the avatar population, the virtualresource conserver can calculate a degree, or amount, of significance ofuse for the area so that the virtual resource conserver can reduce thedisplay quality for the area.

The flow 900 continues at processing block 906, where the virtualresource conserver determines a significance of use value based on theevaluated significance factors. When the virtual resource conserver hasevaluated the significance factors, the virtual resource conservergenerates from the evaluation a quantifiable value indicating asignificance (e.g. importance, degree, etc.) of use. In one example, thevirtual resource conserver determines that an area has a certain numberof avatars occupying the area. Thus, the virtual resource conserverconverts the number of avatars directly into the quantifiable value, orweight, representing the significance of use, such as by using apre-determined conversion scale or chart. The conversion scale can bebased on any kind of algorithm or formula (e.g. linear, exponential,etc.) with many factors or variables related to different significancefactors. For instance, the virtual resource conserver determines, asdescribed at processing block 904, that zero avatars occupy an area, andthus, at processing block 906, converts the “zero” number directly to a“low” significance of use value. Similarly, the virtual resourceconserver determines that one to two avatars occupy an area, and thusconvert the “1-2” number range directly to a “medium” significance ofuse value. Further, the virtual resource conserver may determine thatmore than two avatars occupy an area, and thus convert the “>2” numberrange directly to a “high” significance of use value. In other examples,however, the virtual resource conserver evaluates significance factorsother than, or in addition to, avatar population, and computes asignificance of use value by using a combination of evaluatedsignificance factors. For example, the conversion formula fordetermining a significance of use may compute a first significancefactor, avatar population, and a second significance factor, “eventimportance”, which relates to an importance of a scheduled event in thearea at a given date and time. The virtual resource conserver computesthe evaluation of the event importance and the avatar population, togenerate a significance of use value. For example, the area may beholding a sponsored event that, during the first two hours of the event,the significance of the event importance has a weighted value, whichoutweighs the significance of the avatar population, resulting in a“high” significance of use value. However, after a certain time period,such as after the first two hours of the event, the importance of thesponsored event diminishes linearly, so that the significance of theavatar population has a greater influence on the conversion scaleformula. Further, the virtual resource conserver could determinesignificance of use values according to many different levels or scalesof significance other than “high”, “medium” and “low”.

The flow 900 continues at processing block 908, where the virtualresource conserver reduces the display quality of the area based on thesignificance of use of the area. For instance, the virtual resourceconserver determines a “low” significance of use value, and consequentlyreduces the display quality of the area to a “high” degree, orcompletely removes the display of the area. If, however, the virtualresource conserver determines a “medium” significance of use value, thevirtual resource conserver reduces the display quality of the area to a“moderate” degree. Alternatively, if the virtual resource conserverdetermines a “high” significance of use value, the virtual resourceconserver reduces the display quality to a “low” degree, or not at all.Further, the virtual resource conserver could reduce display qualityaccording to many different levels or scales of significance other thanjust “high”, “moderate” or “low”. The different levels could relate tomany different display characteristics based on the significancefactors. For instance, the virtual resource conserver analyzes the areacharacteristics and the area actions to assess an area situation orcondition. In some situations or conditions for the area, for example,the virtual resource conserver determines that it would be logical ormore efficient to reduce display quality in one way more than anotherway, such as removing texture of an object in a dark environment insteadof removing luminosity, or vice versa for a light environment.

As the virtual resource conserver reduces the display quality of areas,the virtual resource conserver can reduce usage of computing resourcesused to display the areas. For instance, as described in further detailherein, the virtual resource conserver can reduce processor usage,memory usage, disk space usage, data transfer, etc. by the computingresources. In some examples, the virtual resource conserver cangradually reduce the display quality of the area, such as by utilizing aset of levels for reducing display quality and by using smart objectswith conservation settings that comprise levels of reducing displayquality.

Further, in some examples, the virtual resource conserver could performa reverse procedure to increase display quality of areas that havealready been reduced. For instance, areas of the virtual universe couldbe reduced, either as a result of the flow 900, or because the defaultcondition of the area could be reduced in quality. The virtual resourceconserver, therefore, could evaluate significance factors for increasingdisplay quality of areas based on a significance of use. For example,the virtual resource conserver could initially present an area with areduced display quality, but then increase the display quality areabased on the number of avatars occupying the area. For example, thevirtual resource conserver may reduce the display quality of all areasthat do not have avatars. However, as an avatar approaches, and occupiesthe area, the virtual resource conserver increases the display qualityof the area. If more avatars occupy the area, then the virtual resourceconserver could increase the display quality even more.

In some embodiments, the operations can be performed in series, while inother embodiments, one or more of the operations can be performed inparallel. For example, as described above, block 902 and 904 could beperformed in parallel.

FIG. 10 is an example flow diagram illustrating modifying a view of anarea based on an avatar's perspective to conserve computing resources.In FIG. 10, the flow 1000 begins at processing block 1002, where avirtual resource conserver determines a first area that is being viewedby an avatar in a virtual universe. For instance, the virtual resourceconserver could calculate a directly facing field of vision for theavatar. Anything within the direct field of vision would represent thearea that the avatar is viewing directly in front of the avatar. Thevirtual resource conserver could calculate the direct field of vision,for example, by calculating a direct angle of view. The direct angle ofview represents the breadth, or width, of the area directly in front ofthe avatar. For instance, the virtual resource conserver could calculatethe direct angle of view by considering a width of an area of interest,such as the width of coordinates that encompass an object that theavatar is using, or other objects connected to that object. The virtualresource conserver could further calculate the direct angle of viewbased on a pre-determined angle for all avatars in the virtual universe.The virtual resource conserver could also calculate the direct angle ofview based on boundaries of an area that a computing resource controls.The virtual resource conserver could also determine the direct angle ofview based on an activity that the avatar is engaged in. For instance, asignificant activity may demand a wide direct angle of view, such asfighting a battle, seeking an avatar or hunting a creature, etc. Otheractivities, however, may be less significant and the virtual resourceconserver could determine a narrower direct angle of view. FIG. 4 aboveillustrates this concept.

The flow 1000 continues at processing block 1004, where the virtualresource conserver determines a second area adjacent to the first area,the adjacent area being in a peripheral view of the avatar. Forinstance, the virtual resource conserver could determine that anyviewable area, or areas, adjacent to, or beyond, the avatar's directfield of vision are the avatar's “peripheral view areas”. In otherwords, peripheral view areas are viewable areas to the right and left ofthe area encompassed by the direct angle of view. Hence, the virtualresource conserver could determine more than one second area since thereare peripheral views to the right and left of the direct angle of view.The peripheral view areas can be controlled by one or more computingresources. In one example, the one or more computing resources could bethe same computing resource that control objects and activities in thefirst area. In another example, the one or more computing resourcescould be different computing resources than those that control the firstarea. In yet other examples, there could be a combination of computingresources that control the second and the first area simultaneously.

The flow 1000 continues at processing block 1006, where the virtualresource conserver reduces a display quality of the second, adjacentarea to conserve computing resources in the virtual universe. The secondarea, for example, could be the areas in the avatar's peripheral view.The virtual resource conserver reduces the display quality of objectswithin the second area. For instance, the virtual resource conserverreduces or removes textures, colors, actions, movements, etc. of theobjects. The virtual resource conserver reduces usage of the one or morecomputing resources that process data for presenting the objects in thesecond area. For instance, as described in further detail herein, thevirtual resource conserver can reduce processor usage, memory usage,disk space usage, data transfer, etc. by the computing resources thatcontrol the second area. By reducing usage of the computing resources,the second, peripheral view area, reduces in display quality.Alternatively, the virtual resource conserver reduces the displayquality of the one or more second, peripheral view areas, by processingquality reduction instructions that reduce the display quality ofobjects in the peripheral view areas, which indirectly reduces usage ofthe computing resources.

In some examples, users can volunteer to experience limited views. Thevirtual resource conserver, for example, rewards users for volunteeringto experience limited views. In other examples, the virtual resourceconserver imposes limited views upon users. In some examples, thevirtual resource conserver reduces the display of areas as a result ofthe flow 900, or as a default state, and then determines when areasenter an avatar's direct field of vision. The virtual resource conserverthen increases the display quality of those areas that entered theavatar's direct field of vision. Also, in some examples, the virtualresource conserver can gradually reduce the display quality of the area,such as by utilizing a set of levels for reducing display quality and/orby using smart objects with conservation settings that comprise levelsof reducing display quality.

In some embodiments, the operations can be performed in series, while inother embodiments, one or more of the operations can be performed inparallel. For example, processing block 1002 and 1004 could be processedsimultaneously.

FIG. 11 is an example flow diagram illustrating collapsing areas andcomputing resources in a virtual universe to conserve computingresources. In FIG. 11, the flow 1100 begins at processing block 1102,where a virtual resource conserver determines a first area of a regionin a virtual universe, the first area having one or more objects oravatars controlled by a first computing resource. In one example, thefirst computing resource processes data for presenting the first areaand also processes session data for controlling the one or more avatarsin the first area. In other examples, however, a combination ofresources could process data for presenting the area and data forprocessing session data. In yet other examples, portions, or sections,of a single computing resource, (e.g., partitions of a single database,processors of a single server, etc.) could control the first area of theregion, whereas other portions, or sections, of the same computingresource could control other areas of the region. The portions, orsections, can be considered as separate computing resources for purposesof this description. The region includes one or more avatars, one ormore topology objects, and one or more interactive objects. Topologyobjects and interactive objects are described detail in FIG. 5 above.The virtual resource conserver can evaluate characteristics of theobjects in the area to determine if the objects are topology objects,interactive objects or avatars. For instance, the virtual resourceconserver can look at the objects' abilities. If the virtual resourceconserver recognizes that the object can move or react, it may determinethat the object is an interactive object. The virtual resource conservercan also determine a significance of an object, or rather, thesignificance of the object's use or purpose in the area. A significantobject is an object that the virtual resource conserver does not removefrom display, other than to move the object from one area to anotherarea. For instance, a significant object can be an object with which anavatar may interact, or possibly interact, an object that plays asignificant purpose of the area, an object that possesses a valuable orimportant characteristic, etc. The virtual resource conserver movessignificant objects from area to area when coalescing and collapsingareas. Coalescing, or combining, an area means to move objects ofsignificance, such as avatars and/or interactive objects, out of onearea into another area in a region of the virtual universe. To collapsean area means to remove, or significantly reduce a display quality of,objects in the area. In some examples, collapsing an area means totemporarily crop the entire area from the virtual universe. Collapsingan area is also described in further detail above in FIG. 5.

The flow 1100 continues at processing block 1104, where the virtualresource conserver determines a second area, within the region, that issimilar in topology to the first area and is controlled by a secondcomputing resource. The second computing resource processes data forpresenting the second area. The second area is a part of the region andmay be adjacent to, or near, the first area. The topology of the secondarea is consistent with the topology of the first area because they areboth within a region that has common properties or functions, such ascommon landscaping or common activities that an avatar could perform.

The flow 1100 continues at processing block 1106, where the virtualresource conserver analyzes factors about the first and second areas tobe used to for deciding whether to coalesce the areas. For example, thevirtual resource conserver analyzes factors about the first area andsecond area to determine which one of the two areas should be combinedinto, or coalesced with, the other area. For instance, the virtualresource conserver analyzes the first area and determines that the firstarea has one avatar engaged in an activity using an interactive objectin the first area. The virtual resource conserver analyzes the secondarea and determines that two avatars are engaged in a similar activityusing similar interactive objects in the second area. Consequently, thevirtual resource conserver determines that it would be more efficient tocombine the first area into the second area because moving one avatarwould be more efficient than moving two. In addition, the virtualresource conserver could determine other factors, such as whether thecomputing resource that controls the second area can more efficientlyprocess three avatars than the first area, or if one of the computingresources is experiencing performance problems. Thus, the virtualresource conserver can analyze multiple factors and combinations offactors to determine which area should be coalesced and which areashould be collapsed. The virtual resource conserver can also analyze thecomputing resources controlling the first area and the second area todetermine if there would be a savings to computing resources to coalesceand collapse areas.

The flow 1100 continues at decisional block 1107, where the virtualresource conserver determines, based on the analysis of the first andsecond area, whether the first area should be coalesced with the secondarea. If the virtual resource conserver determines that the first areashould be coalesced with the second area, the flow 1100 continues atprocessing block 1108. If, however, the virtual resource conserverdetermines that the first area should not be coalesced with the secondarea, then the process ends.

The flow 1100 continues at processing block 1108, where the virtualresource conserver coalesces the first area with the second area. Thevirtual resource conserver coalesces the first area with the second areaby moving objects of significance from the first area to the secondarea, including any avatars in the area along with any interactiveobjects that the avatars are using. If there are no avatars, the virtualresource conserver may decide not to move any objects, or may move onlya few interactive object to the second area. When moving an avatar fromthe first area to the second area, the virtual resource conserver canorient the avatar, such as by demonstrating to the avatar where it willbe moved. The virtual resource conserver may demonstrate to the avatarthe location on a map, or with visual indicators, like arrows or linesthat show that movement will occur from a point in, or section of, thefirst area to a point in, or section of, the second area. The virtualresource conserver transfers data, for presenting the avatars andobjects, from the first computing resource to the second computingresource. The virtual resource conserver also moves any session datafrom the first computing resource to the second computing resource.Session data includes data used to maintain a connection between aclient and a virtual universe server so that the client can control theavatar's movements. Methods are known for transferring session databetween servers and other computing resources, such as via ateleportation procedure within the virtual universe or by using avirtual data transfer application or function.

The flow 1100 continues at processing block 1110, where the virtualresource conserver collapses the first area by reducing usage of thefirst computing resource. For instance, the virtual resource conserverremoves all topology objects from the first area as well as anyinteractive objects that remained in the first area after coalescing thefirst and second areas. In some examples, the virtual resource conservercrops the area from the virtual universe view and connects theboundaries of adjacent areas. The virtual resource conserver reducesresource usage from the first computing resource in one of many ways.For example, the virtual resource conserver could shut off or reducepower, activate a sleep or hibernation mode, reduce processor cycles,reduce memory usage, reduce disk usage, etc.

In some embodiments, the operations can be performed in series, while inother embodiments, one or more of the operations can be performed inparallel. For example the virtual resource conserver could determine thefirst area, processing block 1102, and determine the second area,processing block 1104, in parallel. Further, the virtual resourceconserver could coalesce the first area, processing block 1108, andcollapse the first area, processing block 1110, in parallel.

Example Virtual Resource Conserver Network

FIG. 12 is an illustration of a virtual resource conserver 1202 on anetwork 1200. In FIG. 12, the network 1200, also referred to as avirtual resource conserver network 1200, includes a first local network1212 that includes network devices 1204 and 1208 that can use thevirtual resource conserver 1202. Example network devices 1204 and 1208can include personal computers, personal digital assistants, mobiletelephones, mainframes, minicomputers, laptops, servers, or the like. InFIG. 12, some network devices 1204 can be clients (“clients”) that canwork in conjunction with a server device 1208 (“server”). Any one of thenetwork clients 1204 and server 1208 can be embodied as the computersystem described in FIG. 13. A communications network 1222 connects asecond local network 1218 to the first local network 1212. The secondlocal network 1218 also includes clients 1224 and a server 1228 that canuse a virtual resource conserver 1206.

Still referring to FIG. 12, the communications network 1212 can be alocal area network (LAN) or a wide area network (WAN). Thecommunications network 1212 can include any suitable technology, such asPublic Switched Telephone Network (PSTN), Ethernet, 802.11g, SONET, etc.For simplicity, the virtual resource conserver network 1200 shows onlysix clients 1204, 1224 and two servers 1208, 1228 connected to thecommunications network 1222. In practice, there may be a differentnumber of clients and servers. Also, in some instances, a device mayperform the functions of both a client and a server. Additionally, theclients 1204, 1224 can connect to the communications network 1222 andexchange data with other devices in their respective networks 1212, 1218or other networks (not shown). In addition, the virtual resourceconservers 1202 and 1206 may not be standalone devices. For example, thevirtual resource conserver 1202 may be distributed across multiplemachines, perhaps including the server 1208. The virtual resourceconserver 1202 may be embodied as hardware, software, or a combinationof hardware and software in a server, such as the server 1208. One orboth of the virtual resource conservers 1202 and 1206 may also beembodied in one or more client machines, possibly including one or moreof the clients 1204 and 1224. For instance, servers can embodyfunctionality (e.g., as code, a processing card, etc.) that searches avirtual universe for smart objects, reduces views, or performs othertechniques described herein. Functionality for conserving computingresources in the virtual universe can be embodied in one or more servermachines or distributed as tasks to client machines accessing thevirtual universe. For example, storing and tracking smart objects, orcalculating views and perspectives may be performed as a background taskon client machines distributed by servers.

Example Virtual Resource Conserver Computer System

FIG. 13 is an illustration of a virtual resource conserver computersystem 1300. In FIG. 13, the virtual resource conserver 1300 (“computersystem”) includes a CPU 1302 connected to a system bus 1304. The systembus 1304 is connected to a memory controller 1306 (also called a northbridge), which is connected to a main memory unit 1308, AGP bus 1310 andAGP video card 1312. The main memory unit 1308 can include any suitablememory random access memory (RAM), such as synchronous dynamic RAM,extended data output RAM, etc.

In one embodiment, the computer system 1300 includes a virtual resourceconserver 1337. The virtual resource conserver 1337 can processcommunications, commands, or other information, to conserve computingresources in a virtual universe. The virtual resource conserver 1337 isshown connected to the system bus 1304, however the virtual resourceconserver 1337 could be connected to a different bus or device withinthe computer system 1300. The virtual resource conserver 1337 caninclude software modules that utilize main memory 1308. For instance,the virtual resource conserver 1337 can wholly or partially be embodiedas a program product in the main memory 1308. The virtual resourceconserver 1337 can be embodied as logic in the CPU 1302 and/or aco-processor, one of multiple cores in the CPU 1302, etc.

An expansion bus 1314 connects the memory controller 1306 to aninput/output (I/O) controller 1316 (also called a south bridge).According to embodiments, the expansion bus 1314 can be include aperipheral component interconnect (PCI) bus, PCIX bus, PC Card bus,CardBus bus, InfiniBand bus, or an industry standard architecture (ISA)bus, etc.

The I/O controller is connected to a hard disk drive (HDD) 1318, digitalversatile disk (DVD) 1320, input device ports 1324 (e.g., keyboard port,mouse port, and joystick port), parallel port 1338, and a universalserial bus (USB) 1322. The USB 1322 is connected to a USB port 1340. TheI/O controller 1316 is also connected to an XD bus 1326 and an ISA bus1328. The ISA bus 1328 is connected to an audio device port 1336, whilethe XD bus 1326 is connected to BIOS read only memory (ROM) 1330. A BIOSroutine 1332 is included in BIOS ROM 1330.

In some embodiments, the computer system 1300 can include additionalperipheral devices and/or more than one of each component shown in FIG.13. For example, in some embodiments, the computer system 1300 caninclude multiple external multiple CPUs 1302. In some embodiments, anyof the components can be integrated or subdivided.

Any component of the computer system 1300 can be implemented ashardware, firmware, and/or machine-readable storage media includinginstructions for performing the operations described herein.

The described embodiments may be provided as a computer program product,or software, that may include a machine-readable storage medium havingstored thereon instructions, which may be used to program a computersystem (or other electronic device(s)) to perform a process according toembodiments of the invention(s), whether presently described or not,because every conceivable variation is not enumerated herein. Amachine-readable storage medium includes any mechanism for storinginformation in a form (e.g., software, processing application) readableby a machine (e.g., a computer). A machine-readable storage medium mayinclude, but is not limited to, magnetic storage medium (e.g., floppydiskette); optical storage medium (e.g., CD-ROM); magneto-opticalstorage medium; read only memory (ROM); random access memory (RAM);erasable programmable memory (e.g., EPROM and EEPROM); flash memory; orother types of medium suitable for storing electronic instructions in aform that is not a propagated signal.

General

This detailed description refers to specific examples in the drawingsand illustrations. These examples are described in sufficient detail toenable those skilled in the art to practice the inventive subjectmatter. These examples also serve to illustrate how the inventivesubject matter can be applied to various purposes or embodiments.Although examples refer to smart objects to reduce computing resources,objects that are not smart can be reduced in quality, or prepared to besmart objects. In other examples, some areas are described as beingadjacent within a region, although in some examples some areas may beadjacent, but border separate regions. Other embodiments are includedwithin the inventive subject matter, as logical, mechanical, electrical,and other changes can be made to the example embodiments describedherein. Features of various embodiments described herein, howeveressential to the example embodiments in which they are incorporated, donot limit the inventive subject matter as a whole, and any reference tothe invention, its elements, operation, and application are not limitingas a whole, but serve only to define these example embodiments. Thisdetailed description does not, therefore, limit embodiments of theinvention, which are defined only by the appended claims. Each of theembodiments described herein are contemplated as falling within theinventive subject matter, which is set forth in the following claims.

The invention claimed is:
 1. A method of coalescing and collapsing afirst area of a virtual universe into a second area of the virtualuniverse, the method comprising: a computer detecting an indication toreduce usage of a computing resource in the virtual universe; thecomputer determining the first area of the virtual universe forcoalescing and collapsing into the second area of the virtual universein response to said computer detecting the indication to reduce usage ofthe computing resource in the virtual universe, wherein the first areacomprises a plurality of virtual universe objects; the computerselecting a first set of the plurality of virtual universe objects formoving from the first area into the second area; the computer coalescingthe first set of the plurality of virtual universe objects into thesecond area from the first area; and the computer collapsing the firstarea of the virtual universe in response to said computer coalescing thefirst set of the plurality of virtual universe objects into the secondarea from the first area.
 2. The method of claim 1, wherein the computercollapsing the first area further comprises one of clearing the firstarea of remaining ones of the plurality of virtual universe objects,reducing display quality of the remaining ones of the plurality ofvirtual universe objects, or cropping out the first area from thevirtual universe, and wherein the remaining ones of the plurality ofvirtual universe objects consist of the plurality of virtual universeobjects other than the first set of the plurality of virtual universeobjects.
 3. The method of claim 1, wherein the computer selecting thefirst set of the plurality of virtual universe objects further comprisesthe computer identifying those of the plurality of virtual universeobjects that are interactive virtual universe objects.
 4. The method ofclaim 1, wherein the computer selecting the first set of the pluralityof virtual universe objects further comprises: the computer analyzingwhether an avatar is likely to interact with one or more of those of theplurality of virtual universe objects that are interactive virtualuniverse objects; and the computer selecting the one or more of those ofthe plurality of virtual universe objects that are interactive virtualuniverse objects as the first set of the plurality of virtual universeobjects.
 5. The method of claim 1 further comprising: the computeranalyzing activity in the first area and the second area; and thecomputer determining whether collapsing the first area would reduce theusage of the computing resource based on the computer analyzing theactivity in the first area and the second area.
 6. The method of claim5, wherein the computer analyzing the activity further comprises thecomputer analyzing an amount of movement of avatars in and out of thefirst area and the second area.
 7. The method of claim 1, furthercomprising: the computer reducing usage of the computing resource;wherein the computer reducing the usage of the computing resourcecomprises one or more of the computer turning off the computingresource, the computer reducing a rate of computer processor cycles onthe computing resource, the computer reducing a rate of data transfer bythe computing resource, or the computer reducing a rate of memory accesson the computing resource.
 8. The method of claim 1, wherein thecomputer coalescing the first set of the plurality of virtual universeobjects into the second area from the first area further comprises thecomputer moving the first set of the plurality of objects from the firstarea into the second area.
 9. A computer system for coalescing andcollapsing a first area of a virtual universe into a second area of thevirtual universe, the computer system comprising: one or moreprocessors, one or more machine-readable memories and one or moremachine-readable tangible storage devices; program instructions, storedon at least one of the one or more storage devices for execution by atleast one of the one or more processors via at least one of the one ormore memories, to detect an indication to reduce usage of a computingresource in the virtual universe; program instructions, stored on atleast one of the one or more storage devices for execution by at leastone of the one or more processors via at least one of the one or morememories, to determine the first area of the virtual universe forcoalescing and collapsing into the second area responsive to detectingthe indication to reduce usage of the computing resource in the virtualuniverse, wherein the first area comprises a plurality of virtualuniverse objects; program instructions, stored on at least one of theone or more storage devices for execution by at least one of the one ormore processors via at least one of the one or more memories, to selecta first set of the plurality of virtual universe objects to move fromthe first area into the second area; program instructions, stored on atleast one of the one or more storage devices for execution by at leastone of the one or more processors via at least one of the one or morememories, to coalesce the first set of the plurality of virtual universeobjects into the second area from the first area; and programinstructions, stored on at least one of the one or more storage devicesfor execution by at least one of the one or more processors via at leastone of the one or more memories, to collapse the first area of thevirtual universe responsive to coalescing the first set of the pluralityof virtual universe objects into the second area from the first area.10. The computer system of claim 9, wherein the program instructions toselect the first set of the plurality of virtual universe objects:identify those of the plurality of virtual universe objects that areinteractive objects; analyze whether an avatar is likely to interactwith one or more of those of the plurality of virtual universe objectsthat are interactive virtual universe objects; and select the one ormore of those of the plurality of virtual universe objects that areinteractive virtual universe objects as at least a portion of the firstset of the plurality of virtual universe objects.
 11. The computersystem of claim 9 wherein the program instructions to collapse the firstarea comprises one of clear the first area of remaining ones of theplurality of virtual universe objects, reduce display quality of theremaining ones of the plurality of virtual universe objects, or crop outthe first area from the virtual universe; and wherein the remaining onesof the plurality of virtual universe objects consist of the plurality ofvirtual universe objects other than the first set of the plurality ofvirtual universe objects.
 12. The computer system of claim 9 wherein theprogram instructions to coalesce the first set of the plurality ofvirtual universe objects into the second area from the first area movethe first set of the plurality of objects from the first area into thesecond area.
 13. The computer system of claim 9 further comprising:program instructions, stored on at least one of the one or more storagedevices for execution by at least one of the one or more processors viaat least one of the one or more memories, to analyze activity in thefirst area and the second area; and program instructions, stored on atleast one of the one or more storage devices for execution by at leastone of the one or more processors via at least one of the one or morememories, to determine whether collapsing the first area would reduceusage of the computing resource based on analyzing the activity.
 14. Acomputer program product for coalescing and collapsing a first area of avirtual universe into a second area of the virtual universe, thecomputer program product comprising: one or more non-transitorymachine-readable storage devices; program instructions, stored on atleast one of the one or more storage devices, to detect an indication toreduce usage of a computing resource in the virtual universe; programinstructions, stored on at least one of the one or more storage devices,to determine the first area of the virtual universe for coalescing andcollapsing into the second area of the virtual universe responsive todetecting the indication to reduce usage of the computing resource inthe virtual universe, wherein the first area comprises a plurality ofvirtual universe objects; program instructions, stored on at least oneof the one or more storage devices, to select a first set of theplurality of virtual universe objects for moving from the first areainto the second area; program instructions, stored on at least one ofthe one or more storage devices, to coalesce the first set of theplurality of virtual universe objects into the second area from thefirst area; and program instructions, stored on at least one of the oneor more storage devices, to collapse the first area of the virtualuniverse responsive to coalescing the first set of the plurality ofvirtual universe objects into the second area from the first area. 15.The computer program product of claim 14, wherein the programinstructions to collapse the first area of the virtual universecomprises one of clear the first area of remaining ones of the pluralityof virtual objects, reduce display quality of the remaining ones of theplurality of virtual universe objects, or crop out the first area fromthe virtual universe; and wherein the remaining ones of the plurality ofvirtual universe objects consist of the plurality of virtual universeobjects other than the first set of the plurality of virtual universeobjects.
 16. The computer program product of claim 14 wherein theprogram instructions to coalesce the first set of the plurality ofvirtual universe objects into the second area move the first set of theplurality of objects from the first area into the second area.
 17. Thecomputer program product of claim 14 wherein the program instructions toselect the first set of the plurality of virtual universe objects:identify those of the plurality of virtual universe objects that areinteractive objects; analyze whether an avatar is likely to interactwith one or more of those of the plurality of virtual universe objectsthat are interactive virtual universe objects; and select the one ormore of those of the plurality of virtual universe objects that areinteractive virtual universe objects as at least a portion of the firstset of the plurality of virtual universe objects.
 18. The computerprogram product of claim 14 further comprising: program instructions,stored on at least one of the one or more storage devices, to analyzeactivity in the first area and the second area; and programinstructions, stored on at least one of the one or more storage devices,to determine whether collapsing the first area would reduce the usage ofthe computing resource based on analyzing the activity.